package com.gxc.array;

/**
 * 2748. 美丽下标对的数目
 * 给你一个下标从 0 开始的整数数组 nums 。
 * 如果下标对 i、j 满足 0 ≤ i < j < nums.length ，
 * 如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ，则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。
 *
 * 返回 nums 中 美丽下标对 的总数目。
 *
 * 对于两个整数 x 和 y ，如果不存在大于 1 的整数可以整除它们，则认为 x 和 y 互质 。
 * 换而言之，如果 gcd(x, y) == 1 ，则认为 x 和 y 互质，其中 gcd(x, y) 是 x 和 y 的 最大公因数
 */
public class CountBeautifulPairs {

    public static void main(String[] args) {
        /*int[] nums = {2,5,1,4};
        System.out.println(hanlde(nums));*/

        int[] nums2 = {31,25,72,79,74};
        System.out.println(hanlde(nums2));
    }

    private static int hanlde(int[] nums) {
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            for (int j = i+1; j < nums.length; j++) {
                if (gcd(nums[i], nums[j])) {
                    System.out.println(nums[i] + "  , " + nums[j]);
                    sum++;
                }
            }
        }
        return sum;
    }

    //判断是否  互质
    private static boolean gcd(int i, int j) {
        while (i>9) {
            i = i/10;
        }
        j = j%10;

        for (int a = 2; a <= 9; a++) {
            if (i%a == 0 && j%a == 0) return false;
        }
        return true;
    }

    //官方 判断是否  互质
    private int gcd2(int a, int b) {
        return b == 0 ? a : gcd2(b, a % b);
    }

}
